package persistencia;

import descricoes.EventoAlocado;
import descricoes.Sala;

/**
 * Classe que gerencia a conexao entre EventoAlocado e o banco de dados
 * 
 * @author Grupo 3
 * 
 */
public class GerenciadorEventosAlocados extends Gerenciador<EventoAlocado> {

	private static GerenciadorEventosAlocados gerenciaEventosAlocados;

	private GerenciadorEventosAlocados() {
		carregarDados();
	}

	/**
	 * Retorna uma instancia de GerenciadorEventosAlocados, utilizando o padrao
	 * Singleton
	 * 
	 * @return Uma instancia unica da classe
	 */
	public static GerenciadorEventosAlocados getInstance() {
		if (gerenciaEventosAlocados == null) {
			gerenciaEventosAlocados = new GerenciadorEventosAlocados();
		}
		return gerenciaEventosAlocados;
	}

	/**
	 * Remove todos os eventos alocados de uma determinada sala
	 * 
	 * @param sala
	 *            A sala a qual se deseja remover todos os eventos alocados
	 */
	public void removerAlocacoesSala(Sala sala) {
		for (int i = 0; i < getLista().size(); i++) {
			if (getLista().get(i).getSala().getID().equals(sala.getID()))
				removeObjeto(getLista().get(i));
		}
	}

	@Override
	protected String nomeArquivo() {
		return "ListaEventosAlocados";
	}
}
